package licode.unisop.realm.application.gateway;

import licode.unisop.provider.api.SiAuthenticationInterceptor;
import licode.unisop.provider.api.SiAuthenticationProvider;
import licode.unisop.provider.api.SiUserProvider;
import licode.unisop.provider.info.*;

import java.util.List;

/**
 * 定义插件管理接口
 *
 * @author licode
 */
public interface SiUserProviderManager {
    void registerUserProvider(SiRealmReg regInfo);
    SiUserProvider findUserProvider(SiProviderFind findInfo);

    void registerAuthProvider(SiAuthenticationReg regInfo);
    SiAuthenticationProvider findAuthProvider(SiIdentityFind findInfo);

    void registerAuthInterceptor(SiAuthInterceptorReg regInfo);
    SiAuthenticationInterceptor findAuthInterceptor(SiIdentityFind findInfo);

    List<SiUserProvider> getUserProviders();
    List<SiAuthenticationProvider> getAuthenticationProviders();
}
